const { User } = require('../models');
const bcrypt = require('bcryptjs');

async function createAdmin() {
  try {
    console.log('🔍 检查管理员用户...');
    
    // 查找admin用户
    let adminUser = await User.findOne({ where: { username: 'admin' } });
    
    if (!adminUser) {
      console.log('➕ 创建新的管理员用户...');
      const hashedPassword = await bcrypt.hash('admin123', 10);
      adminUser = await User.create({
        username: 'admin',
        email: 'admin@study.com',
        password: hashedPassword,
        real_name: '系统管理员',
        role: 'admin',
        status: 'active'
      });
      console.log('✅ 管理员用户创建成功');
    } else {
      console.log('✅ 找到现有admin用户');
      if (adminUser.role !== 'admin') {
        await adminUser.update({ role: 'admin', status: 'active' });
        console.log('✅ 已将用户角色设置为admin');
      } else {
        console.log('✅ 用户角色已经是admin');
      }
    }
    
    console.log('');
    console.log('📋 管理员信息:');
    console.log('   用户名:', adminUser.username);
    console.log('   邮箱:', adminUser.email);
    console.log('   角色:', adminUser.role);
    console.log('   状态:', adminUser.status);
    console.log('');
    console.log('🔑 登录信息:');
    console.log('   用户名: admin');
    console.log('   密码: admin123');
    console.log('');
    console.log('✅ 操作完成！现在您可以使用管理员账户登录了。');
    
    process.exit(0);
  } catch (error) {
    console.error('❌ 操作失败:', error.message);
    process.exit(1);
  }
}

createAdmin(); 